package xiongwei.jiang.prop;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.net.URI;
import java.util.Map;

/**
 * 企业微信属性配置类
 *
 * @author 天之蓝
 */
@Data
@ConfigurationProperties(prefix = "wxwork")
public class WXWorkProperties {
    /**
     * 通讯录同步应用
     */
    private Map<String, Contact> contact;
    /**
     * 打卡应用
     */
    private Map<String, Checkin> checkin;
    /**
     * 自建应用
     */
    private Map<String, App> app;
    /**
     * 回调
     */
    private Map<String, Callback> callback;
    /**
     * 机器人
     */
    private Map<String, Bot> bot;

    @Data
    public static class Contact {
        /**
         * 企业编号
         */
        private String corpId;
        /**
         * 通讯录同步应用密钥
         */
        private String secret;
    }

    @Data
    public static class Checkin {
        /**
         * 企业编号
         */
        private String corpId;
        /**
         * 打卡应用密钥
         */
        private String secret;
    }

    @Data
    public static class App {
        /**
         * 企业编号
         */
        private String corpId;
        /**
         * 自建应用编号
         */
        private Integer agentId;
        /**
         * 自建应用密钥
         */
        private String secret;
    }

    @Data
    public static class Callback {
        /**
         * 企业编号
         */
        private String corpId;
        /**
         * 回调令牌
         */
        private String token;
        /**
         * 回调密钥
         */
        private String encodingAesKey;
    }

    @Data
    public static class Bot {
        /**
         * 机器人消息推送地址
         */
        private URI webhookUrl;
    }
}
